//编写Java程序，把当前目录下扩展名为txt的文件的扩展名全部更名为back

import java.io.*;
import java.lang.*;

public class Demo {
    public static int num = 0; //记录修改的文件数

    public void reName(String path, String Srcform, String Desform) {
        File f1 = new File(path);  //声明File对象，用于导入修改路径
        File[] fs = f1.listFiles();  //声明File对象数组，用于存储f目录下的文件
        if (fs == null) {
            System.out.println("找不到目录路径！");
            System.exit(0);
        }
        for (int i = 0; i < fs.length; ++i) {
            File f2 = fs[i];  //通过对各个文件的遍历，通过f2取出各个文件
            if (f2.isDirectory()) { //如果f2是目录
                reName(f2.getPath(), Srcform, Desform); //递归调用reName，更改子目录中的文件
            } else { //如果f2是一个文件
                String name = f2.getName(); //返回文件名
                if (name.endsWith(Srcform)) {  //如果文件名的后缀为Srcform
                    //更改该文件下文件
                    //indexof(Srcform) 查找Srcform第一次出现的位置
                    //name.substring(起始位置，结束位置）获取子串
                    f2.renameTo(new File(f2.getParent() + "/" + name.substring(0, name.indexOf(Srcform)) + Desform));
                    num++;
                }
            }
        }
    }

    public static void main(String[] args) {
        Demo rf = new Demo();
        rf.reName("C:\\Users\\98317\\Desktop\\JavaExerciseCode\\exci07", ".txt", ".back");
        System.out.print(num + "个文件修改成功\n");
    }
}
